This invention relates to collaborative systems and, more particularly, to presence awareness in such systems.
The ability to convey presence awareness information is rapidly becoming an important component of collaborative system applications. Indeed, any detectable user event could conceivably have a legitimate use in some presence awareness application. However, from a user""s point of view, there is a fundamental tradeoff between access to presence data for legitimate users, and concerns about privacy. Precisely to the extent that one user is able to identify what another user is doing, the user can communicate with the other user when the need arises, make his or her communications more timely and convenient for the other user, and generally be a more effective colleague or more accessible and responsive friend, acquaintance, or family member. This is the sort of information, however, that users would generally not like to provide to strangers, nor perhaps to managers, competitors, or family members and friends. Moreover, the data are largely generated automatically and potentially quite frequently, so users cannot be expected to monitor all presence events in order to ensure appropriate levels of privacy. Existing collaborative systems only offer rudimentary presence awareness information. This is because these systems cannot provide sufficient privacy and security guarantees.
Problems and limitations of prior presence awareness initiatives in collaborative systems are overcome in a presence awareness system that enables a user to set presence awareness policies, and that provides a reasonably high assurance that the presence awareness system will correctly implement those policies. Specifically, the presence awareness system is such as to enable users to specify complex presence awareness policies. The presence awareness system is also such as to have been verified by employing systematic state-space exploration tools to establish a high level of assurance that the presence awareness system has the capability to implement correctly, substantially all possible presence awareness policies. Further, in accordance with another aspect of the invention, the presence awareness policy specifications are modular relative to the rest of the presence awareness system, and can be modified without having to modify computational modules or user interface program code of the presence awareness system.
In accordance with another aspect of the invention, a user has the capability to update his or her presence information.
In accordance with still another aspect of the invention, the presence awareness system automatically collects presence information about the user and automatically updates his or her presence information.
In accordance with yet another aspect of the invention, the presence awareness system may use specification-based testing at run-time to monitor whether some users"" presence awareness policies have inadvertently been violated, further strengthening the reliability of the system.